﻿using System.Collections.Generic;
using UnityEngine;
using SRandom = System.Random;

namespace HK.Core.Extend
{
    /// <summary>
    /// 颜色扩展
    /// </summary>
    public static class ColorEx
    {
        /// <summary>
        /// 无色(透明)
        /// </summary>
        public static readonly Color Transparent = new Color(0.0f, 0.0f, 0.0f, 0.0f);

        /// <summary>
        /// 白烟色
        /// </summary>
        public static readonly Color WhiteSmoke = new Color(245.0f / 255.0f, 245.0f/ 255.0f, 245.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 米色
        /// </summary>
        public static readonly Color Beige = new Color(163.0f / 255.0f, 148.0f/ 255.0f, 123.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 石板灰
        /// </summary>
        public static readonly Color SlateAsh = new Color(112.0f / 255.0f, 128.0f/ 255.0f, 105.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 粉色
        /// </summary>
        public static readonly Color Pink = new Color(1.0f, 192.0f/ 255.0f, 203.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 浅粉色 - 0
        /// </summary>
        public static readonly Color LightPink0 = new Color(1.0f, 174.0f/ 255.0f, 185.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 浅粉色 - 1
        /// </summary>
        public static readonly Color LightPink1 = new Color(238.0f / 255.0f, 162.0f/ 255.0f, 173.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 浅粉色 - 2
        /// </summary>
        public static readonly Color LightPink2 = new Color(205.0f / 255.0f, 140.0f/ 255.0f, 149.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 浅粉色 - 3
        /// </summary>
        public static readonly Color LightPink3 = new Color(139.0f / 255.0f, 95.0f/ 255.0f, 101.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 热粉红色 - 0
        /// </summary>
        public static readonly Color HotPink0 = new Color(1.0f, 110.0f/ 255.0f, 180.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 热粉红色 - 1
        /// </summary>
        public static readonly Color HotPink1 = new Color(238.0f / 255.0f, 106.0f/ 255.0f, 167.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 热粉红色 - 2
        /// </summary>
        public static readonly Color HotPink2 = new Color(205.0f / 255.0f, 96.0f/ 255.0f, 144.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 热粉红色 - 3
        /// </summary>
        public static readonly Color HotPink3 = new Color(139.0f / 255.0f, 58.0f/ 255.0f, 98.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 深粉红色 - 0
        /// </summary>
        public static readonly Color DeepPink0 = new Color(255.0f / 255.0f, 20.0f/ 255.0f, 147.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 深粉红色 - 1
        /// </summary>
        public static readonly Color DeepPink1 = new Color(238.0f / 255.0f, 18.0f/ 255.0f, 137.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 深粉红色 - 2
        /// </summary>
        public static readonly Color DeepPink2 = new Color(205.0f / 255.0f, 16.0f/ 255.0f, 118.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 深粉红色 - 3
        /// </summary>
        public static readonly Color DeepPink3 = new Color(139.0f / 255.0f, 10.0f/ 255.0f, 80.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 黄色 - 0
        /// </summary>
        public static readonly Color Yellow0 = new Color(1.0f, 1.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 黄色 - 1
        /// </summary>
        public static readonly Color Yellow1 = new Color(238.0f/ 255.0f, 238.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 黄色 - 2
        /// </summary>
        public static readonly Color Yellow2 = new Color(205.0f/ 255.0f, 205.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 黄色 - 3
        /// </summary>
        public static readonly Color Yellow3 = new Color(139.0f/ 255.0f, 139.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 金黄色 - 0
        /// </summary>
        public static readonly Color Golden0 = new Color(1.0f, 215.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 金黄色 - 1
        /// </summary>
        public static readonly Color Golden1 = new Color(238.0f/ 255.0f, 201.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 金黄色 - 2
        /// </summary>
        public static readonly Color Golden2 = new Color(205.0f/ 255.0f, 173.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);

        /// <summary>
        /// 金黄色 - 3
        /// </summary>
        public static readonly Color Golden3 = new Color(139.0f/ 255.0f, 117.0f/ 255.0f, 0.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 浓黄色 - 0
        /// </summary>
        public static readonly Color Goldenrod0 = new Color(1.0f, 193.0f/ 255.0f, 37.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 浓黄色 - 1
        /// </summary>
        public static readonly Color Goldenrod1 = new Color(238.0f / 255.0f, 180.0f/ 255.0f, 34.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 浓黄色 - 2
        /// </summary>
        public static readonly Color Goldenrod2 = new Color(205.0f / 255.0f, 155.0f/ 255.0f, 29.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 浓黄色 - 3
        /// </summary>
        public static readonly Color Goldenrod3 = new Color(139.0f / 255.0f, 105.0f/ 255.0f, 20.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗金菊黄 - 0
        /// </summary>
        public static readonly Color DarkGoldenrod0 = new Color(1.0f, 185.0f/ 255.0f, 15.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗金菊黄 - 1
        /// </summary>
        public static readonly Color DarkGoldenrod1 = new Color(238.0f / 255.0f, 185.0f/ 255.0f, 15.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗金菊黄 - 2
        /// </summary>
        public static readonly Color DarkGoldenrod2 = new Color(205.0f / 255.0f, 149.0f/ 255.0f, 12.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗金菊黄 - 3
        /// </summary>
        public static readonly Color DarkGoldenrod3 = new Color(139.0f / 255.0f, 101.0f/ 255.0f, 8.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 腥红
        /// </summary>
        public static readonly Color Crimson = new Color(220.0f / 255.0f, 20.0f/ 255.0f, 60.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 橙色
        /// </summary>
        public static readonly Color Orange = new Color(1.0f, 97.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 枯黄
        /// </summary>
        public static readonly Color WitheredYellow = new Color(1.0f, 128.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 浅黄色
        /// </summary>
        public static readonly Color CanaryYellow = new Color(245.0f / 255.0f, 222.0f / 255.0f, 179.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 鹿皮
        /// </summary>
        public static readonly Color Moccasin = new Color(1.0f, 228.0f / 255.0f, 181.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 印度红 - 0
        /// </summary>
        public static readonly Color IndianRed0 = new Color(1.0f, 106.0f / 255.0f, 106.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 印度红 - 1
        /// </summary>
        public static readonly Color IndianRed1 = new Color(238.0f / 255.0f, 99.0f / 255.0f, 99.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 印度红 - 2
        /// </summary>
        public static readonly Color IndianRed2 = new Color(205.0f / 255.0f, 85.0f / 255.0f, 85.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 印度红 - 3
        /// </summary>
        public static readonly Color IndianRed3 = new Color(139.0f / 255.0f, 58.0f / 255.0f, 58.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 褐土 - 0
        /// </summary>
        public static readonly Color Sienna0 = new Color(1.0f, 130.0f / 255.0f, 71.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 褐土 - 1
        /// </summary>
        public static readonly Color Sienna1 = new Color(238.0f / 255.0f, 121.0f / 255.0f, 66.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 褐土 - 2
        /// </summary>
        public static readonly Color Sienna2 = new Color(205.0f / 255.0f, 104.0f / 255.0f, 57.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 褐土 - 3
        /// </summary>
        public static readonly Color Sienna3 = new Color(139.0f / 255.0f, 71.0f / 255.0f, 38.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 深橙色
        /// </summary>
        public static readonly Color DarkOrange = new Color(1.0f, 140.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 橙红
        /// </summary>
        public static readonly Color OrangeRed = new Color(1.0f, 69.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 番茄红
        /// </summary>
        public static readonly Color Lycopene = new Color(1.0f, 99.0f / 255.0f, 71.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 棕色 - 0
        /// </summary>
        public static readonly Color Brown0 = new Color(255.0f / 255.0f, 64.0f / 255.0f, 64.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 棕色 - 1
        /// </summary>
        public static readonly Color Brown1 = new Color(238.0f / 255.0f, 59.0f / 255.0f, 59.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 棕色 - 2
        /// </summary>
        public static readonly Color Brown2 = new Color(205.0f / 255.0f, 51.0f / 255.0f, 51.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 棕色 - 3
        /// </summary>
        public static readonly Color Brown3 = new Color(139.0f / 255.0f, 35.0f / 255.0f, 35.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 火砖 - 0
        /// </summary>
        public static readonly Color FireBrick0 = new Color(178.0f / 255.0f, 34.0f / 255.0f, 34.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 火砖 - 1
        /// </summary>
        public static readonly Color FireBrick1 = new Color(1.0f, 48.0f / 255.0f, 48.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 火砖 - 2
        /// </summary>
        public static readonly Color FireBrick2 = new Color(238.0f / 255.0f, 44.0f / 255.0f, 44.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 火砖 - 3
        /// </summary>
        public static readonly Color FireBrick3 = new Color(205.0f / 255.0f, 38.0f / 255.0f, 38.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 火砖 - 4
        /// </summary>
        public static readonly Color FireBrick4 = new Color(139.0f / 255.0f, 26.0f / 255.0f, 26.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 紫褐色 - 0
        /// </summary>
        public static readonly Color Maroon0 = new Color(1.0f, 52.0f / 255.0f, 179.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 紫褐色 - 1
        /// </summary>
        public static readonly Color Maroon1 = new Color(238.0f / 255.0f, 48.0f / 255.0f, 167.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 紫褐色 - 2
        /// </summary>
        public static readonly Color Maroon2 = new Color(205.0f / 255.0f, 41.0f / 255.0f, 144.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 紫褐色 - 3
        /// </summary>
        public static readonly Color Maroon3 = new Color(139.0f / 255.0f, 28.0f / 255.0f, 98.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 鲜肉(鲑鱼)色
        /// </summary>
        public static readonly Color Salmon = new Color(250.0f / 255.0f, 128.0f / 255.0f, 114.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 珊瑚赫
        /// </summary>
        public static readonly Color CoralHertz = new Color(193.0f / 255.0f, 45.0f / 255.0f, 31.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淡珊瑚色
        /// </summary>
        public static readonly Color LightCoral = new Color(240.0f / 255.0f, 128.0f / 255.0f, 128.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 珊瑚
        /// </summary>
        public static readonly Color Coral = new Color(255.0f / 255.0f, 69.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 李子
        /// </summary>
        public static readonly Color Plum = new Color(221.0f / 255.0f, 160.0f / 255.0f, 221.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫罗兰
        /// </summary>
        public static readonly Color Violet = new Color(238.0f / 255.0f, 130.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 深紫罗兰
        /// </summary>
        public static readonly Color DarkViolet = new Color(148.0f / 255.0f, 0.0f, 211.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 蓝紫罗兰
        /// </summary>
        public static readonly Color BlueViolet = new Color(138.0f / 255.0f, 43.0f / 255.0f, 226.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫红色 - 0
        /// </summary>
        public static readonly Color VioletRed0 = new Color(1.0f, 62.0f / 255.0f, 150.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫红色 - 1
        /// </summary>
        public static readonly Color VioletRed1 = new Color(238.0f / 255.0f, 58.0f / 255.0f, 140.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫红色 - 2
        /// </summary>
        public static readonly Color VioletRed2 = new Color(205.0f / 255.0f, 50.0f / 255.0f, 120.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫红色 - 3
        /// </summary>
        public static readonly Color VioletRed3 = new Color(139.0f / 255.0f, 34.0f / 255.0f, 80.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 洋红 - 0
        /// </summary>
        public static readonly Color Magenta0 = new Color(1.0f, 0.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 洋红 - 1
        /// </summary>
        public static readonly Color Magenta1 = new Color(238.0f / 255.0f, 0.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 洋红 - 2
        /// </summary>
        public static readonly Color Magenta2 = new Color(205.0f / 255.0f, 0.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 洋红 - 3
        /// </summary>
        public static readonly Color Magenta3 = new Color(139.0f / 255.0f, 0.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 兰花紫 - 0
        /// </summary>
        public static readonly Color Orchid0 = new Color(1.0f, 131.0f / 255.0f, 250.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 兰花紫 - 1
        /// </summary>
        public static readonly Color Orchid1 = new Color(238.0f / 255.0f, 122.0f / 255.0f, 233.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 兰花紫 - 2
        /// </summary>
        public static readonly Color Orchid2 = new Color(205.0f / 255.0f, 105.0f / 255.0f, 201.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 兰花紫 - 3
        /// </summary>
        public static readonly Color Orchid3 = new Color(139.0f / 255.0f, 71.0f / 255.0f, 137.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的兰花紫 - 0
        /// </summary>
        public static readonly Color MediumOrchid0 = new Color(224.0f / 255.0f, 102.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 适中的兰花紫 - 1
        /// </summary>
        public static readonly Color MediumOrchid1 = new Color(209.0f / 255.0f, 95.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的兰花紫 - 2
        /// </summary>
        public static readonly Color MediumOrchid2 = new Color(180.0f / 255.0f, 80.0f / 255.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的兰花紫 - 3
        /// </summary>
        public static readonly Color MediumOrchid3 = new Color(122.0f / 255.0f, 55.0f / 255.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗兰花紫 - 0
        /// </summary>
        public static readonly Color DarkOrchid0 = new Color(191.0f / 255.0f, 62.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 暗兰花紫 - 1
        /// </summary>
        public static readonly Color DarkOrchid1 = new Color(178.0f / 255.0f, 58.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗兰花紫 - 2
        /// </summary>
        public static readonly Color DarkOrchid2 = new Color(154.0f / 255.0f, 50.0f / 255.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 暗兰花紫 - 3
        /// </summary>
        public static readonly Color DarkOrchid3 = new Color(104.0f / 255.0f, 34.0f / 255.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫色 - 0
        /// </summary>
        public static readonly Color Purple0 = new Color(155.0f / 255.0f, 48.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 紫色 - 1
        /// </summary>
        public static readonly Color Purple1 = new Color(145.0f / 255.0f, 44.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫色 - 2
        /// </summary>
        public static readonly Color Purple2 = new Color(125.0f / 255.0f, 38.0f / 255.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 紫色 - 3
        /// </summary>
        public static readonly Color Purple3 = new Color(85.0f / 255.0f, 26.0f / 255.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的紫色 - 0
        /// </summary>
        public static readonly Color MediumPurple0 = new Color(171.0f / 255.0f, 130.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 适中的紫色 - 1
        /// </summary>
        public static readonly Color MediumPurple1 = new Color(159.0f / 255.0f, 121.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的紫色 - 2
        /// </summary>
        public static readonly Color MediumPurple2 = new Color(137.0f / 255.0f, 104.0f / 255.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的紫色 - 3
        /// </summary>
        public static readonly Color MediumPurple3 = new Color(93.0f / 255.0f, 71.0f / 255.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 浅灰蓝
        /// </summary>
        public static readonly Color LightGreyBlue = new Color(176.0f / 255.0f, 224.0f / 255.0f, 230.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 品蓝
        /// </summary>
        public static readonly Color ReddishBlue = new Color(65.0f / 255.0f, 105.0f / 255.0f, 225.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 岩板蓝 - 0
        /// </summary>
        public static readonly Color SlateBlue0 = new Color(131.0f / 255.0f, 111.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 岩板蓝 - 1
        /// </summary>
        public static readonly Color SlateBlue1 = new Color(122.0f / 255.0f, 103.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 岩板蓝 - 2
        /// </summary>
        public static readonly Color SlateBlue2 = new Color(105.0f / 255.0f, 89.0f / 255.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 岩板蓝 - 3
        /// </summary>
        public static readonly Color SlateBlue3 = new Color(71.0f / 255.0f, 60.0f / 255.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 皇家蓝 - 0
        /// </summary>
        public static readonly Color RoyalBlue0 = new Color(72.0f / 255.0f, 118.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 皇家蓝 - 1
        /// </summary>
        public static readonly Color RoyalBlue1 = new Color(67.0f / 255.0f, 110.0f / 255.0f, 238.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 皇家蓝 - 2
        /// </summary>
        public static readonly Color RoyalBlue2 = new Color(58.0f / 255.0f, 95.0f / 255.0f, 205.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 皇家蓝 - 3
        /// </summary>
        public static readonly Color RoyalBlue3 = new Color(39.0f / 255.0f, 64.0f / 255.0f, 139.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 矢车菊的蓝色
        /// </summary>
        public static readonly Color CornflowerBlue = new Color(100.0f / 255.0f, 149.0f / 255.0f, 237.0f/ 255.0f, 1.0f);
        
        /// <summary>
        /// 道奇蓝 - 0
        /// </summary>
        public static readonly Color DodgerBlue0 = new Color(30.0f / 255.0f, 144.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 道奇蓝 - 1
        /// </summary>
        public static readonly Color DodgerBlue1 = new Color(28.0f / 255.0f, 134.0f / 255.0f, 238.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 道奇蓝 - 2
        /// </summary>
        public static readonly Color DodgerBlue2 = new Color(24.0f / 255.0f, 116.0f / 255.0f, 205.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 道奇蓝 - 3
        /// </summary>
        public static readonly Color DodgerBlue3 = new Color(16.0f / 255.0f, 78f / 255.0f, 139.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 天空蓝 - 0
        /// </summary>
        public static readonly Color SkyBlue0 = new Color(135.0f / 255.0f, 206.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 天空蓝 - 1
        /// </summary>
        public static readonly Color SkyBlue1 = new Color(126.0f / 255.0f, 192.0f / 255.0f, 238.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 天空蓝 - 2
        /// </summary>
        public static readonly Color SkyBlue2 = new Color(108.0f / 255.0f, 166.0f / 255.0f, 205.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 天空蓝 - 3
        /// </summary>
        public static readonly Color SkyBlue3 = new Color(74.0f / 255.0f, 112.0f / 255.0f, 139.0f / 255.0f, 1.0f);
        /// <summary>
        /// 淡天空蓝 - 0
        /// </summary>
        public static readonly Color LightSkyBlue0 = new Color(176.0f / 255.0f, 226.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 淡天空蓝 - 1
        /// </summary>
        public static readonly Color LightSkyBlue1 = new Color(164.0f / 255.0f, 211.0f / 255.0f, 238.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淡天空蓝 - 2
        /// </summary>
        public static readonly Color LightSkyBlue2 = new Color(141.0f / 255.0f, 182.0f / 255.0f, 205.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淡天空蓝 - 3
        /// </summary>
        public static readonly Color LightSkyBlue3 = new Color(96.0f / 255.0f, 123.0f / 255.0f, 139.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 深空蓝 - 0
        /// </summary>
        public static readonly Color DeepSkyBlue0 = new Color(0.0f, 191.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 深空蓝 - 1
        /// </summary>
        public static readonly Color DeepSkyBlue1 = new Color(0.0f, 178.0f / 255.0f, 238.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 深空蓝 - 2
        /// </summary>
        public static readonly Color DeepSkyBlue2 = new Color(0.0f, 154.0f / 255.0f, 205.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 深空蓝 - 3
        /// </summary>
        public static readonly Color DeepSkyBlue3 = new Color(0.0f, 104.0f / 255.0f, 139.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 深青色
        /// </summary>
        public static readonly Color DarkCyan = new Color(0.0f, 139.0f / 255.0f, 139.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 水鸭色
        /// </summary>
        public static readonly Color Teal = new Color(0.0f, 128.0f / 255.0f, 128.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 柏林
        /// </summary>
        public static readonly Color Berlin = new Color(0.0f, 103.0f / 255.0f, 166.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 土耳其玉色
        /// </summary>
        public static readonly Color TurkishJade = new Color(0.0f, 128.0f / 255.0f, 128.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淺海洋綠
        /// </summary>
        public static readonly Color LightSeaGreen = new Color(32.0f / 255.0f, 178.0f / 255.0f, 170.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 深宝石色
        /// </summary>
        public static readonly Color DarkTurquoise = new Color(0.0f, 206.0f / 255.0f, 209.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淺松石绿 - 0
        /// </summary>
        public static readonly Color PaleTurquoise0 = new Color(187.0f / 255.0f, 1.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 淺松石绿 - 1
        /// </summary>
        public static readonly Color PaleTurquoise1 = new Color(174.0f / 255.0f, 238.0f / 255.0f, 238.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淺松石绿 - 2
        /// </summary>
        public static readonly Color PaleTurquoise2 = new Color(150.0f / 255.0f, 205.0f / 255.0f, 205.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淺松石绿 - 3
        /// </summary>
        public static readonly Color PaleTurquoise3 = new Color(102.0f / 255.0f, 139.0f / 255.0f, 139.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 松石绿 - 0
        /// </summary>
        public static readonly Color Turquoise0 = new Color(0.0f, 245.0f / 255.0f, 1.0f, 1.0f);
        
        /// <summary>
        /// 松石绿 - 1
        /// </summary>
        public static readonly Color Turquoise1 = new Color(0.0f, 229.0f / 255.0f, 238.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 松石绿 - 2
        /// </summary>
        public static readonly Color Turquoise2 = new Color(0.0f, 197.0f / 255.0f, 205.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 松石绿 - 3
        /// </summary>
        public static readonly Color Turquoise3 = new Color(0.0f, 134.0f / 255.0f, 139.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 淡黄绿色 - 0
        /// </summary>
        public static readonly Color Chartreuse0 = new Color(127.0f / 255.0f, 1.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 淡黄绿色 - 1
        /// </summary>
        public static readonly Color Chartreuse1 = new Color(118.0f / 255.0f, 238.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 淡黄绿色 - 2
        /// </summary>
        public static readonly Color Chartreuse2 = new Color(102.0f / 255.0f, 205.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 淡黄绿色 - 3
        /// </summary>
        public static readonly Color Chartreuse3 = new Color(69.0f / 255.0f, 139.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 橄榄褐色 - 0
        /// </summary>
        public static readonly Color OliveDrab0 = new Color(192.0f / 255.0f, 1.0f, 62.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 橄榄褐色 - 1
        /// </summary>
        public static readonly Color OliveDrab1 = new Color(179.0f / 255.0f, 238.0f / 255.0f, 58.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 橄榄褐色 - 2
        /// </summary>
        public static readonly Color OliveDrab2 = new Color(154.0f / 255.0f, 205.0f / 255.0f, 50.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 橄榄褐色 - 3
        /// </summary>
        public static readonly Color OliveDrab3 = new Color(105.0f / 255.0f, 139.0f / 255.0f, 34.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 苍白绿
        /// </summary>
        public static readonly Color PaleGreen = new Color(152.0f / 255.0f, 251.0f / 255.0f, 152.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 草坪绿
        /// </summary>
        public static readonly Color LawnGreen = new Color(124.0f / 255.0f, 252.0f / 255.0f, 0.0f, 1.0f);
        
        /// <summary>
        /// 柠檬绿
        /// </summary>
        public static readonly Color LimeGreen = new Color(50.0f / 255.0f, 205.0f / 255.0f, 50.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 蜂蜜
        /// </summary>
        public static readonly Color Honeydew = new Color(240.0f / 255.0f, 1.0f, 240.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 春天绿 - 0
        /// </summary>
        public static readonly Color SpringGreen0 = new Color(0.0f, 1.0f, 127.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 春天绿 - 1
        /// </summary>
        public static readonly Color SpringGreen1 = new Color(0.0f, 238.0f / 255.0f, 118.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 春天绿 - 2
        /// </summary>
        public static readonly Color SpringGreen2 = new Color(0.0f, 205.0f / 255.0f, 102.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 春天绿 - 3
        /// </summary>
        public static readonly Color SpringGreen3 = new Color(0.0f, 139.0f / 255.0f, 69.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的春天绿
        /// </summary>
        public static readonly Color SpringGreenMedium = new Color(0.0f, 1.0f, 154.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 碧绿色
        /// </summary>
        public static readonly Color Aquamarine = new Color(127.0f / 255.0f, 1.0f, 212.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 适中的碧绿色
        /// </summary>
        public static readonly Color AquamarineMedium = new Color(0.0f, 1.0f, 154.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 翠绿色
        /// </summary>
        public static readonly Color EmeraldGreen = new Color(127.0f / 255.0f, 1.0f, 212.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 森林绿
        /// </summary>
        public static readonly Color ForestGreen = new Color(34.0f / 255.0f, 139.0f / 255.0f, 34.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 嫩绿
        /// </summary>
        public static readonly Color VividGreen = new Color(0.0f, 1.0f, 127.0f / 255.0f, 1.0f);
        
        /// <summary>
        /// 转换颜色值成16进制格式的颜色值(不包含透明通道)
        /// <para>* 例如:#FFCCDD</para>
        /// </summary>
        /// <param name="iColor">颜色</param>
        /// <returns>16进制格式的颜色值(不包含透明通道)</returns>
        public static string ConvertColorToHexStr(Color iColor)
        {
            var colorRed = (int)(iColor.r * 255);
            var colorGreen = (int)(iColor.g * 255);
            var colorBlue = (int)(iColor.b * 255);

            return $"#{colorRed:X2}{colorGreen:X2}{colorBlue:X2}FF";
        }
        
        /// <summary>
        /// 转换颜色值成16进制格式的颜色值(包含透明通道)
        /// <para>* 例如:#FFCCDD</para>
        /// </summary>
        /// <param name="iColor">颜色</param>
        /// <returns>16进制格式的颜色值(包含透明通道)</returns>
        public static string ConvertColorToHexStrA(Color iColor)
        {
            var colorRed = (int)(iColor.r * 255);
            var colorGreen = (int)(iColor.g * 255);
            var colorBlue = (int)(iColor.b * 255);
            var colorAlpha = (int)(iColor.a * 255);

            return $"#{colorRed:X0}{colorGreen:X0}{colorBlue:X0}{colorAlpha:X0}";
        }

        /// <summary>
        /// 颜色列表
        /// </summary>
        public static Color[] Colors { get; } = {
            WhiteSmoke,     Beige,            SlateAsh,          
            
            // 粉色
            Pink,          
            HotPink0,       HotPink1,         HotPink2,          HotPink3,      
            DeepPink0,      DeepPink1,        DeepPink2,         DeepPink3,
            
            // 黄色
            Yellow0,        Yellow1,          Yellow2,           Yellow3,
            
            // 金黄色
            Golden0,        Golden1,          Golden2,           Golden3, 
            Crimson,        Orange,           WitheredYellow,    CanaryYellow,  Moccasin,         
            DarkOrange,     OrangeRed,        Lycopene,      
            
            // 印度红
            IndianRed0,     IndianRed1,       IndianRed2,        IndianRed3,
            
            // 棕色
            Brown0,         Brown1,           Brown2,            Brown3,         
            
            // 火砖色
            FireBrick0,     FireBrick1,       FireBrick2,        FireBrick3,    FireBrick4,         
            
            // 紫褐色
            Maroon0,        Maroon1,          Maroon2,           Maroon3,
            
            Salmon,         CoralHertz,       LightCoral,        Coral,         Plum,             
            
            // 紫色
            Violet,         DarkViolet,       BlueViolet,    
            VioletRed0,     VioletRed1,       VioletRed2,        VioletRed3,
            Orchid0,        Orchid1,          Orchid2,           Orchid3,
            MediumOrchid0,  MediumOrchid1,    MediumOrchid2,     MediumOrchid3,
            
            // 洋红
            Magenta0,       Magenta1,         Magenta2,          Magenta3,
            
            // 绿色
            LightGreyBlue,  ReddishBlue,
            // 岩板蓝
            SlateBlue0,     SlateBlue1,       SlateBlue2,        SlateBlue3,
            // 皇家蓝
            RoyalBlue0,     RoyalBlue1,       RoyalBlue2,        RoyalBlue3, 
            
            CornflowerBlue,       
            
            // 道奇蓝
            DodgerBlue0,    DodgerBlue1,      DodgerBlue2,       DodgerBlue3,
            
            // 天空蓝
            SkyBlue0,       SkyBlue1,         SkyBlue2,          SkyBlue3,  
            
            // 淡天空蓝
            LightSkyBlue0,  LightSkyBlue1,    LightSkyBlue2,     LightSkyBlue3,  
            
            // 深空蓝
            DeepSkyBlue0,   DeepSkyBlue1,     DeepSkyBlue2,      DeepSkyBlue3,    
            
            DarkCyan,       Teal,             Berlin,            TurkishJade,      
            LightSeaGreen,  
            
            // 浅宝石绿
            PaleTurquoise0, PaleTurquoise1,   PaleTurquoise2,    PaleTurquoise3,     
            
            // 宝石绿
            Turquoise0,     Turquoise1,       Turquoise2,        Turquoise3,     
            DarkTurquoise, 
            
            // 淡黄绿色
            Chartreuse0,    Chartreuse1,      Chartreuse2,       Chartreuse3,
            PaleGreen,      LawnGreen,        LimeGreen,         Honeydew,      
            
            // 春天绿
            SpringGreen0,      SpringGreen1,   SpringGreen2,     SpringGreen3,   
            SpringGreenMedium, Aquamarine,     AquamarineMedium, EmeraldGreen,      
            ForestGreen,       VividGreen
        };

        /// <summary>
        /// 可获取颜色列表
        /// </summary>
        private static List<Color> _availableColors { get; set; } = new List<Color>();
        
        /// <summary>
        /// 获取一个有效的颜色值
        /// </summary>
        /// <returns>颜色值</returns>
        public static Color GetAvailableColor()
        {
            if (0 >= _availableColors.Count)
            {
                _availableColors.AddRange(Colors);
            }

            var random = new SRandom();
            var randomIndex = random.Next(_availableColors.Count - 1);
            var targetColor = _availableColors[randomIndex];
            _availableColors.RemoveAt(randomIndex);
            
            return targetColor;
        }
        
        /// <summary>
        /// 校验是否为同种颜色
        /// </summary>
        /// <param name="iColor1">颜色1</param>
        /// <param name="iColor2">颜色2</param>
        /// <returns>true:相同; false:不同;</returns>
        public static bool IsSameColor(Color iColor1, Color iColor2)
        {
            return Mathf.Abs(iColor1.r - iColor2.r) < Mathf.Epsilon &&
                   Mathf.Abs(iColor1.g - iColor2.g) < Mathf.Epsilon &&
                   Mathf.Abs(iColor1.b - iColor2.b) < Mathf.Epsilon;
        }
        
    }
}
